// 生成随机订单id
export const orderCode = function () {
  let orderCode='';
  for (let i = 0; i < 6; i++) {
    // 6位随机数，用以加在时间戳后面。
    orderCode += Math.floor(Math.random() * 10);
  }
  orderCode = new Date().getTime() + orderCode;  // 时间戳，用来生成订单号。
  return orderCode;
}

// 格式化时间
export const dateFormat = function (fmt, date) {
  let ret;
  const opt = {
    'y+': date.getFullYear().toString(),        // 年
    'M+': (date.getMonth() + 1).toString(),     // 月
    'd+': date.getDate().toString(),            // 日
    'h+': date.getHours().toString(),           // 时
    'mm+': date.getMinutes().toString(),         // 分
    'ss+': date.getSeconds().toString()          // 秒
    // 有其他格式化字符需求可以继续添加，必须转化成字符串
  };
  for (let k in opt) {
    ret = new RegExp('(' + k + ')').exec(fmt);
    if (ret) {
      fmt = fmt.replace(ret[1], (ret[1].length === 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, '0')))
    }
  }
  return fmt;
}

// 格式化字节
export const bytesToSize = function (bytes) {
  if (bytes === 0) {return '0 B';}
  let k = 1024;
  let sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
  let i = Math.floor(Math.log(bytes) / Math.log(k))
  return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i];
  // toPrecision(3) 后面保留两位小数，如1.00GB
}

// 返回元素显示与否
export const eleStatus = function (value, flagTrue = true) {
  return {display: value === flagTrue? 'block': 'none'}
}
